查看原文
其他

分享下我是如何深入学习 Redis 的

是Yes呀 yes的练级攻略 2022-09-04

你好,我是 yes。

昨天接了个极客时间 Redis 专栏的推广,触发了我对 Redis 学习之路的回忆,今天我就来分享下我是如何学习 Redis 的,希望对你有所帮助。

我第一次接触 Redis 的时候还是浑浑噩噩的,甚至不清楚缓存的意义,我就把它当做一个获取写入很快的数据库来用。

后来渐渐的发现好像 Redis 并不是这样用的,所以我就去找书看,我的第一本 Redis 书是 《Redis 设计与实现》。

说出来你们可能不信,我读这本书的时候 Redis 命令都不熟悉,得看着官网来打命令,而且很多命令都没看过,更别说用过了,但是不妨碍我看这本书。

在这样的基础下,这本书都成功的把我领入了 Redis 原理大门。(是我天赋异禀还是这本书写的太好了?)

哈哈,是这本书写的好,里面还会掺杂一些伪代码来说明流程,我们都知道有时候代码比文字更能透彻地解释清原理。

针对一些数据结构的说明,集群之间的交互等等都会配上清晰的插图,反正我看了这本书真的是受益匪浅!

紧接着我就看了《Redis 开发与运维》这本书。

这本书针对主从、哨兵、集群、持久化等多个核心方面都进行了一些讲解,都是经验之谈。

其实从书名就能得知这本书的意图,把开发运维中遇到的坑,都说了。

还包括一些面试中常问的如何优化 redis 内存,如何处理大 key 问题等等,我只能说给力。

但是总有一些细节,我觉得理解不了,我举个例子:都说 redis 是单线程,那么 redis 的监听连接和文件处理事件是不是同一个线程呢?

如果是的话,那监听连接不是要阻塞住线程的吗?那如何及时处理文件事件呀?

于是我选择了去看源码,没有什么比源码更加直观清晰的了,只有源码可以帮助我彻底理解 Redis 的实现机制。

而且恰巧的是,市面上已经有了一份带有详细中文注解的 Redis 3.0 源码了,我想这简直就是为我量身定做的呀。

看看每个文件的作用都标注的仔仔细细。

在这注释下还看不懂源码?我要劝退了。

看看,多么完美啊!而这个作者和《Redis 设计与实现》的作者是同一个人,黄健宏。

感谢黄老师,教会了我 Redis 。

就这样在黄老师的指导下我把 Redis 3.0 的源码过了一遍,舒服了。

到后来我又看到了极客时间的这门课,《Redis核心技术与实战》,这是我想接的推广。

对于我自己学习过的东西,我很有底气推荐的,所以我才会在评论区这样回复:

我在看了两本书和源码的情况下还买专栏是因为我想看看专家是怎么理解和讲解 Redis 的。

因为我发现不同的人对一个知识点的理解角度不一样,就 NIO 这个概念我看过很多老师的讲解,还真别说,角度都不一样,我到时候写个文章汇总一波,很有意思。

所以我想看到不同的理解角度。

我还想要看过更多 Redis 真实场景的案例,毕竟中科院计算所副研究员经验应该比较丰富,我当时是抱着就算里面只有一篇文章对我有用就不亏的心态买的,毕竟就一杯星巴克的钱。

事实确实不亏,我随便截两个。

看完之后我觉得几十块钱花的很值,所以我才会这样的回复留言。

然后现在的我基本上就是看一些博客对 Redis 的讲解,看看官网新版的特性,前段时间把 6.0 版本源码下了,打算看看。

还也打算把黄老师的另一本书《Redis 实战》看看,其实我还看过一本 Redis 的书,但是我觉得不好,所以就不提了。

我再分享一个网站,在线 Redis 命令操作,想试验命令线上可以直接尝试,不用任何环境。

https://try.redis.io/

Redis 命令参考手册,中文的。

http://redisdoc.com/index.html

然后官网的,推荐还是用官网的

https://redis.io/commands/

上面提到的带注释的 Redis 3.0 源码地址,其实之前提到过。

https://github.com/huangz1990/redis-3.0-annotated

我公众号后台也上传了,回复【redis】即可得到代码。

然后再贴一下那个专栏吧,这篇不是广告,我自发的想推荐而已,买了的加我微信我给你返现,不赚这个钱

顺带再提一提前两天建立的面霸传说群,已经满 200 人扫不进去了,也有好几个小伙伴分享了最近的面经。

这个群禁闲聊,主要是用于面经交流,为了让大家能顺利的攻克面试,还想进群的加我微信,备注【面霸传说】,我拉你。


我是 yes,从一点点到亿点点,欢迎在看、转发、留言,我们下篇见。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存